package cn.ad.server.web.spring.model.adview;

/**
 * 
 * @author Administrator
 *
 */
public class NativeRequest {
	
	/**
	 * 原生版式
	 * @author Administrator
	 */
	public static enum LAYOUT{
		/**
		 * 未定义
		 */
		UNDEFINED,
		/**
		 * 内容墙
		 */
		CONTENT_WALL,
		/**
		 * 应用墙
		 */
		APP_WALL,
		/**
		 * 新闻放送
		 */
		NEWS,
		/**
		 * 聊天列表
		 */
		CHAT_LIST,
		/**
		 * 轮播
		 */
		BROADCAST,
		/**
		 * 信息流
		 */
		INFO_STREAM,
		/**
		 * 网格内容广告
		 */
		NET_CONTENT_AD;
	}
	
	/**
	 * 原生广告单元ID
	 * @author Administrator
	 */
	public static enum AD_UNIT{
		/**
		 * 未定义
		 */
		undefined,
		/**
		 * 付费搜索单元
		 */
		fee_search,
		/**
		 * 推荐窗口
		 */
		recommend_window,
		/**
		 *推荐列表
		 */
		recommend_list,
		/**
		 *  IAB标准原生元素
		 */
		iab,
		/**
		 * 自定义
		 */
		user_defined;
	}
	
	/**
	 * 使用原生广告的协议版本，缺省1.0
	 */
	private String ver;
	
	/**
	 * 原生广告的版式ID
	 */
	private LAYOUT layout;
	
	/**
	 * 原生广告单元ID
	 */
	private AD_UNIT adunit;
	
	/**
	 * 同一版式布局中，相同广告位的个数。 缺省1
	 */
	private int plcmtcnt;
	
	/**
	 * 原生广告单元的序号
	 * 0表示第一个广告，
	 * 1表示第2个广告，依次类推。 
	 * 缺省0
	 */
	private int seq;
	
	/**
	 * AssetObject数组
	 * 描述都需要哪些素材
	 */
	private RequestAsset[] assets;
	
	/**
	 * 扩展内容
	 */
	private Object ext;

	/**
	 * @return the ver
	 */
	public String getVer() {
		return ver;
	}

	/**
	 * @param ver the ver to set
	 */
	public void setVer(String ver) {
		this.ver = ver;
	}

	/**
	 * @return the layout
	 */
	public LAYOUT getLayout() {
		return layout;
	}

	/**
	 * @param layout the layout to set
	 */
	public void setLayout(LAYOUT layout) {
		this.layout = layout;
	}

	/**
	 * @return the adunit
	 */
	public AD_UNIT getAdunit() {
		return adunit;
	}

	/**
	 * @param adunit the adunit to set
	 */
	public void setAdunit(AD_UNIT adunit) {
		this.adunit = adunit;
	}

	/**
	 * @return the plcmtcnt
	 */
	public int getPlcmtcnt() {
		return plcmtcnt;
	}

	/**
	 * @param plcmtcnt the plcmtcnt to set
	 */
	public void setPlcmtcnt(int plcmtcnt) {
		this.plcmtcnt = plcmtcnt;
	}

	/**
	 * @return the seq
	 */
	public int getSeq() {
		return seq;
	}

	/**
	 * @param seq the seq to set
	 */
	public void setSeq(int seq) {
		this.seq = seq;
	}

	public RequestAsset[] getAssets() {
		return assets;
	}

	public void setAssets(RequestAsset[] assets) {
		this.assets = assets;
	}

	/**
	 * @return the ext
	 */
	public Object getExt() {
		return ext;
	}

	/**
	 * @param ext the ext to set
	 */
	public void setExt(Object ext) {
		this.ext = ext;
	}
}
